// CF1823A
#include <bits/stdc++.h>
using namespace std;
void solve();
int main(){
int t;
cin >> t;
while (t --){
solve();
}
return 0;
}
void solve(){
int n, k;
cin >> n >> k;
int p = 0;
while (p <= n){
if (p * (p - 1) + (n - p) * (n - p - 1) == 2*k){
break;
}
p ++;
}
if (p == n + 1){
cout << "NO\n";
return;
}
vector<int> v(n, -1);
for (int i = 0; i < p; i ++){
v[i] = 1;
}
cout << "YES\n";
for (int i : v){
cout << i << ' ';
}
cout << '\n';
return;
}
1028B - Unnatural Conditions | 735B - Urbanization |
746C - Tram | 1278B - A and B |
1353D - Constructing the Array | 1269C - Long Beautiful Integer |
1076A - Minimizing the String | 913C - Party Lemonade |
1313A - Fast Food Restaurant | 681A - A Good Contest |
1585F - Non-equal Neighbours | 747A - Display Size |
285A - Slightly Decreasing Permutations | 515C - Drazil and Factorial |
1151E - Number of Components | 1151F - Sonya and Informatics |
556A - Case of the Zeros and Ones | 867A - Between the Offices |
1569A - Balanced Substring | 260A - Adding Digits |
1698C - 3SUM Closure | 1029B - Creating the Contest |
1421A - XORwice | 1029A - Many Equal Substrings |
1675D - Vertical Paths | 1271C - Shawarma Tent |
805A - Fake NP | 1163A - Eating Soup |
787A - The Monster | 807A - Is it rated |